Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


sbapp/kivymd/uix/backdrop/backdrop.py bcd5c37101c0030372e2f537fc450741d84f6a82 (bcd5c371) Text, 15.94 KB

T8b949e"""
Components/Backdrop
===================

.. seealso::

`Material Design spec, Backdrop <https://material.io/components/backdrop>`_

.. rubric:: Skeleton layout for using :class:`~MDBackdrop`:

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop.png
:align: center

Usage
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

.. code-block:: kv

<Root>

MDBackdrop:

MDBackdropBackLayer:

ContentForBackdropBackLayer:

MDBackdropFrontLayer:

ContentForBackdropFrontLayer:

Example
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

.. tabs::

.. tab:: Declarative KV styles

.. code-block:: python

from kivy.lang import Builder

from kivymd.uix.screen import MDScreen
from kivymd.app import MDApp

# Your layouts.
Builder.load_string(
'''
#:import os os
#:import Window kivy.core.window.Window
#:import IconLeftWidget kivymd.uix.list.IconLeftWidget
#:import images_path kivymd.images_path


<ItemBackdropFrontLayer@TwoLineAvatarListItem>
icon: "android"

IconLeftWidget:
icon: root.icon


<MyBackdropFrontLayer@ItemBackdropFrontLayer>
backdrop: None
text: "Lower the front layer"
secondary_text: " by 50 %"
icon: "transfer-down"
on_press: root.backdrop.open(-Window.height / 2)
pos_hint: {"top": 1}
_no_ripple_effect: True


<MyBackdropBackLayer@Image>
size_hint: .8, .8
source: os.path.join(images_path, "logo", "kivymd-icon-512.png")
pos_hint: {"center_x": .5, "center_y": .6}
'''
)

# Usage example of MDBackdrop.
Builder.load_string(
'''
<ExampleBackdrop>

MDBackdrop:
id: backdrop
left_action_items: [['menu', lambda x: self.open()]]
title: "Example Backdrop"
radius_left: "25dp"
radius_right: "0dp"
header_text: "Menu:"

MDBackdropBackLayer:
MyBackdropBackLayer:
id: backlayer

MDBackdropFrontLayer:
MyBackdropFrontLayer:
backdrop: backdrop
'''
)


class ExampleBackdrop(MDScreen):
pass


class Example(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "Orange"
return ExampleBackdrop()


Example().run()

.. tab:: Declarative python styles

.. code-block:: python

import os

from kivy.core.window import Window
from kivy.uix.image import Image

from kivymd import images_path
from kivymd.uix.backdrop import MDBackdrop
from kivymd.uix.backdrop.backdrop import (
MDBackdropBackLayer, MDBackdropFrontLayer
)
from kivymd.uix.list import TwoLineAvatarListItem, IconLeftWidget
from kivymd.uix.screen import MDScreen
from kivymd.app import MDApp


class Example(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "Orange"

return (
MDScreen(
MDBackdrop(
MDBackdropBackLayer(
Image(
size_hint=(0.8, 0.8),
source=os.path.join(images_path, "logo", "kivymd-icon-512.png"),
pos_hint={"center_x": 0.5, "center_y": 0.6},
)
),
MDBackdropFrontLayer(
TwoLineAvatarListItem(
IconLeftWidget(icon="transfer-down"),
text="Lower the front layer",
secondary_text=" by 50 %",
on_press=self.backdrop_open_by_50_percent,
pos_hint={"top": 1},
_no_ripple_effect=True,
),
),
id="backdrop",
title="Example Backdrop",
radius_left="25dp",
radius_right="0dp",
header_text="Menu:",
)
)
)

def backdrop_open_by_50_percent(self, *args):
self.root.ids.backdrop.open(-Window.height / 2)


Example().run()

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop.gif
:align: center

.. Note:: `See full example <https://github.com/kivymd/KivyMD/wiki/Components-Backdrop>`_
"""

Te6edf3__all__ Tff7b72= Tb4b4b4(
Ta5d6ff"Ta5d6ffMDBackdropToolbarTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffMDBackdropFrontLayerTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffMDBackdropBackLayerTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffMDBackdropTa5d6ff"Tb4b4b4,
Tb4b4b4)

Tff7b72import T7ee787os
Tff7b72from T7ee787typing Tff7b72import Te6edf3Union

Tff7b72from T7ee787kivyT7ee787.T7ee787animation Tff7b72import Te6edf3Animation
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787lang Tff7b72import Te6edf3Builder
Tff7b72from T7ee787kivyT7ee787.T7ee787properties Tff7b72import Tb4b4b4(
Te6edf3BooleanPropertyTb4b4b4,
Te6edf3ColorPropertyTb4b4b4,
Te6edf3ListPropertyTb4b4b4,
Te6edf3NumericPropertyTb4b4b4,
Te6edf3OptionPropertyTb4b4b4,
Te6edf3StringPropertyTb4b4b4,
Tb4b4b4)
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787boxlayout Tff7b72import Te6edf3BoxLayout

Tff7b72from T7ee787kivymd Tff7b72import Te6edf3uix_path
Tff7b72from T7ee787kivymdT7ee787.T7ee787theming Tff7b72import Te6edf3ThemableBehavior
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787behaviors Tff7b72import Te6edf3FakeRectangularElevationBehavior
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787boxlayout Tff7b72import Te6edf3MDBoxLayout
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787card Tff7b72import Te6edf3MDCard
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787floatlayout Tff7b72import Te6edf3MDFloatLayout
Tff7b72from T7ee787kivymdT7ee787.T7ee787uixT7ee787.T7ee787toolbarT7ee787.T7ee787toolbar Tff7b72import Te6edf3ActionTopAppBarButtonTb4b4b4, Te6edf3MDTopAppBar

Tff7b72with Tffa657openTb4b4b4(
Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Te6edf3uix_pathTb4b4b4, Ta5d6ff"Ta5d6ffbackdropTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffbackdrop.kvTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4,
Tb4b4b4) Tff7b72as Te6edf3kv_fileTb4b4b4:
Te6edf3BuilderTff7b72.Td2a8ffload_stringTb4b4b4(Te6edf3kv_fileTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)Tb4b4b4)


Tff7b72class T56d364MDBackdropTb4b4b4(Te6edf3MDFloatLayoutTb4b4b4, Te6edf3ThemableBehaviorTb4b4b4)Tb4b4b4:
T8b949e"""
:Events:
:attr:`on_open`
When the front layer drops.
:attr:`on_close`
When the front layer rises.
"""

Te6edf3anchor_title Tff7b72= Te6edf3OptionPropertyTb4b4b4(Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3optionsTff7b72=Tb4b4b4[Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrightTa5d6ff"Tb4b4b4]Tb4b4b4)
T8b949e"""
Position toolbar title. Only used with `material_style = 'M3'`
Available options are: `'left'`, `'center'`, `'right'`.

.. versionadded:: 1.0.0

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-anchor-title.png
:align: center

:attr:`anchor_title` is an :class:`~kivy.properties.OptionProperty`
and defaults to `'left'`.
"""

Te6edf3padding Tff7b72= Te6edf3ListPropertyTb4b4b4(Tb4b4b4[T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4]Tb4b4b4)
T8b949e"""
Padding for contents of the front layer.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-padding.png
:align: center

:attr:`padding` is an :class:`~kivy.properties.ListProperty`
and defaults to `[0, 0, 0, 0]`.
"""

Te6edf3left_action_items Tff7b72= Te6edf3ListPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
The icons and methods left of the :class:`kivymd.uix.toolbar.MDTopAppBar`
in back layer. For more information, see the
:class:`kivymd.uix.toolbar.MDTopAppBar` module
and :attr:`left_action_items` parameter.

:attr:`left_action_items` is an :class:`~kivy.properties.ListProperty`
and defaults to `[]`.
"""

Te6edf3right_action_items Tff7b72= Te6edf3ListPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
Works the same way as :attr:`left_action_items`.

:attr:`right_action_items` is an :class:`~kivy.properties.ListProperty`
and defaults to `[]`.
"""

Te6edf3title Tff7b72= Te6edf3StringPropertyTb4b4b4(Tb4b4b4)
T8b949e"""
See the :class:`kivymd.uix.toolbar.MDTopAppBar.title` parameter.

:attr:`title` is an :class:`~kivy.properties.StringProperty`
and defaults to `''`.
"""

Te6edf3back_layer_color Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tff7b72NoneTb4b4b4)
T8b949e"""
Background color of back layer.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-back-layer-color.png
:align: center

:attr:`back_layer_color` is an :class:`~kivy.properties.ColorProperty`
and defaults to `None`.
"""

Te6edf3front_layer_color Tff7b72= Te6edf3ColorPropertyTb4b4b4(Tff7b72NoneTb4b4b4)
T8b949e"""
Background color of front layer.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-front-layer-color.png
:align: center

:attr:`front_layer_color` is an :class:`~kivy.properties.ColorProperty`
and defaults to `None`.
"""

Te6edf3radius_left Tff7b72= Te6edf3NumericPropertyTb4b4b4(Ta5d6ff"Ta5d6ff16dpTa5d6ff"Tb4b4b4)
T8b949e"""
The value of the rounding radius of the upper left corner
of the front layer.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-radius-left.png
:align: center

:attr:`radius_left` is an :class:`~kivy.properties.NumericProperty`
and defaults to `16dp`.
"""

Te6edf3radius_right Tff7b72= Te6edf3NumericPropertyTb4b4b4(Ta5d6ff"Ta5d6ff16dpTa5d6ff"Tb4b4b4)
T8b949e"""
The value of the rounding radius of the upper right corner
of the front layer.

:attr:`radius_right` is an :class:`~kivy.properties.NumericProperty`
and defaults to `16dp`.
"""

Te6edf3header Tff7b72= Te6edf3BooleanPropertyTb4b4b4(Tff7b72TrueTb4b4b4)
T8b949e"""
Whether to use a header above the contents of the front layer.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-header.png
:align: center

:attr:`header` is an :class:`~kivy.properties.BooleanProperty`
and defaults to `True`.
"""

Te6edf3header_text Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffHeaderTa5d6ff"Tb4b4b4)
T8b949e"""
Text of header.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-header-text.png
:align: center

:attr:`header_text` is an :class:`~kivy.properties.StringProperty`
and defaults to `'Header'`.
"""

Te6edf3close_icon Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffcloseTa5d6ff"Tb4b4b4)
T8b949e"""
The name of the icon that will be installed on the toolbar
on the left when opening the front layer.

.. image:: https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/backdrop-close-icon.png
:align: center

:attr:`close_icon` is an :class:`~kivy.properties.StringProperty`
and defaults to `'close'`.
"""

Te6edf3opening_time Tff7b72= Te6edf3NumericPropertyTb4b4b4(T79c0ff0.2Tb4b4b4)
T8b949e"""
The time taken for the panel to slide to the :attr:`state` `'open'`.

.. versionadded:: 1.0.0

:attr:`opening_time` is a :class:`~kivy.properties.NumericProperty`
and defaults to `0.2`.
"""

Te6edf3opening_transition Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffout_quadTa5d6ff"Tb4b4b4)
T8b949e"""
The name of the animation transition type to use when animating to
the :attr:`state` `'open'`.

.. versionadded:: 1.0.0

:attr:`opening_transition` is a :class:`~kivy.properties.StringProperty`
and defaults to `'out_quad'`.
"""

Te6edf3closing_time Tff7b72= Te6edf3NumericPropertyTb4b4b4(T79c0ff0.2Tb4b4b4)
T8b949e"""
The time taken for the panel to slide to the :attr:`state` `'close'`.

.. versionadded:: 1.0.0

:attr:`closing_time` is a :class:`~kivy.properties.NumericProperty`
and defaults to `0.2`.
"""

Te6edf3closing_transition Tff7b72= Te6edf3StringPropertyTb4b4b4(Ta5d6ff"Ta5d6ffout_quadTa5d6ff"Tb4b4b4)
T8b949e"""
The name of the animation transition type to use when animating to
the :attr:`state` 'close'.

.. versionadded:: 1.0.0

:attr:`closing_transition` is a :class:`~kivy.properties.StringProperty`
and defaults to `'out_quad'`.
"""

Te6edf3_open_icon Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3_front_layer_open Tff7b72= Tff7b72False

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_openTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffregister_event_typeTb4b4b4(Ta5d6ff"Ta5d6ffon_closeTa5d6ff"Tb4b4b4)
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(
Tff7b72lambda Te6edf3xTb4b4b4: Tff7b72selfTff7b72.Td2a8ffon_left_action_itemsTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72selfTff7b72.Td2a8ffleft_action_itemsTb4b4b4)
Tb4b4b4)

Tff7b72def Td2a8ffon_openTb4b4b4(Tff7b72selfTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""When the front layer drops."""

Tff7b72def Td2a8ffon_closeTb4b4b4(Tff7b72selfTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""When the front layer rises."""

Tff7b72def Td2a8ffon_left_action_itemsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3instance_backdropTb4b4b4, Te6edf3menuTb4b4b4: Tffa657listTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3menuTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffleft_action_items Tff7b72= Tb4b4b4[Te6edf3menuTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4]
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffleft_action_items Tff7b72= Tb4b4b4[Tb4b4b4[Ta5d6ff"Ta5d6ffmenuTa5d6ff"Tb4b4b4, Tff7b72lambda Te6edf3xTb4b4b4: Tff7b72selfTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4)Tb4b4b4]Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ff_open_icon Tff7b72= Tff7b72selfTff7b72.Td2a8ffleft_action_itemsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]

Tff7b72def Td2a8ffon_headerTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3instance_backdropTb4b4b4, Te6edf3valueTb4b4b4: Tffa657boolTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72def Td2a8ffon_headerTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3valueTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_front_layerTff7b72.Td2a8ffremove_widgetTb4b4b4(Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffheader_buttonTb4b4b4)

Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Te6edf3on_headerTb4b4b4)

Tff7b72def Td2a8ffopenTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3open_up_toTb4b4b4: Tffa657int Tff7b72= T79c0ff0Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""
Opens the front layer.

:open_up_to:
the height to which the front screen will be lowered;
if equal to zero - falls to the bottom of the screen;
"""

Tff7b72selfTff7b72.Td2a8ffanimate_opacity_iconTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ff_front_layer_openTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tff7b72return

Tff7b72if Te6edf3open_up_toTb4b4b4:
Tff7b72if Te6edf3open_up_to Tff7b72< Tb4b4b4(
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffheader_buttonTff7b72.Td2a8ffheight Tff7b72- Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_front_layerTff7b72.Td2a8ffheight
Tb4b4b4)Tb4b4b4:
Te6edf3y Tff7b72= Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffheader_buttonTff7b72.Td2a8ffheight Tff7b72- Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_front_layerTff7b72.Td2a8ffheight
Tff7b72elif Te6edf3open_up_to Tff7b72> T79c0ff0Tb4b4b4:
Te6edf3y Tff7b72= T79c0ff0
Tff7b72elseTb4b4b4:
Te6edf3y Tff7b72= Te6edf3open_up_to
Tff7b72elseTb4b4b4:
Te6edf3y Tff7b72= Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffheader_buttonTff7b72.Td2a8ffheight Tff7b72- Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_front_layerTff7b72.Td2a8ffheight

Te6edf3AnimationTb4b4b4(Te6edf3yTff7b72=Te6edf3yTb4b4b4, Te6edf3dTff7b72=Tff7b72selfTff7b72.Td2a8ffopening_timeTb4b4b4, Te6edf3tTff7b72=Tff7b72selfTff7b72.Td2a8ffopening_transitionTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_front_layer
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_front_layer_open Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffdispatchTb4b4b4(Ta5d6ff"Ta5d6ffon_openTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffcloseTb4b4b4(Tff7b72selfTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Opens the front layer."""

Te6edf3AnimationTb4b4b4(Te6edf3yTff7b72=T79c0ff0Tb4b4b4, Te6edf3dTff7b72=Tff7b72selfTff7b72.Td2a8ffclosing_timeTb4b4b4, Te6edf3tTff7b72=Tff7b72selfTff7b72.Td2a8ffclosing_transitionTb4b4b4)Tff7b72.Td2a8ffstartTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ff_front_layer
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_front_layer_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffdispatchTb4b4b4(Ta5d6ff"Ta5d6ffon_closeTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffanimate_opacity_iconTb4b4b4(
Tff7b72selfTb4b4b4,
Te6edf3instance_icon_menuTb4b4b4: Te6edf3UnionTb4b4b4[Te6edf3ActionTopAppBarButtonTb4b4b4, Tff7b72NoneTb4b4b4] Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3opacity_valueTb4b4b4: Tffa657int Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3call_set_new_iconTb4b4b4: Tffa657bool Tff7b72= Tff7b72TrueTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Starts the opacity animation of the icon."""

Tff7b72if Tff7b72not Te6edf3instance_icon_menuTb4b4b4:
Te6edf3instance_icon_menu Tff7b72= Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fftoolbarTff7b72.Td2a8ffidsTff7b72.Td2a8ffleft_actionsTff7b72.Td2a8ffchildrenTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3anim Tff7b72= Te6edf3AnimationTb4b4b4(
Te6edf3opacityTff7b72=Te6edf3opacity_valueTb4b4b4,
Te6edf3dTff7b72=Tff7b72selfTff7b72.Td2a8ffopening_timeTb4b4b4,
Te6edf3tTff7b72=Tff7b72selfTff7b72.Td2a8ffopening_transitionTb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3call_set_new_iconTb4b4b4:
Te6edf3animTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_completeTff7b72=Tff7b72selfTff7b72.Td2a8ffset_new_iconTb4b4b4)
Te6edf3animTff7b72.Td2a8ffstartTb4b4b4(Te6edf3instance_icon_menuTb4b4b4)

Tff7b72def Td2a8ffset_new_iconTb4b4b4(
Tff7b72selfTb4b4b4,
Te6edf3instance_animationTb4b4b4: Te6edf3AnimationTb4b4b4,
Te6edf3instance_icon_menuTb4b4b4: Te6edf3ActionTopAppBarButtonTb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""
Sets the icon of the button depending on the state of the backdrop.
"""

Te6edf3instance_icon_menuTff7b72.Td2a8fficon Tff7b72= Tb4b4b4(
Tff7b72selfTff7b72.Td2a8ffclose_icon
Tff7b72if Te6edf3instance_icon_menuTff7b72.Td2a8fficon Tff7b72== Tff7b72selfTff7b72.Td2a8ff_open_icon
Tff7b72else Tff7b72selfTff7b72.Td2a8ff_open_icon
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffanimate_opacity_iconTb4b4b4(Te6edf3instance_icon_menuTb4b4b4, T79c0ff1Tb4b4b4, Tff7b72FalseTb4b4b4)

Tff7b72def Td2a8ffadd_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3widgetTb4b4b4, Te6edf3indexTff7b72=T79c0ff0Tb4b4b4, Te6edf3canvasTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3widgetTff7b72.Td2a8ff__class__ Tff7b72in Tb4b4b4(Te6edf3MDBackdropToolbarTb4b4b4, Te6edf3_BackLayerTb4b4b4, Te6edf3_FrontLayerTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3widgetTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3widgetTff7b72.Td2a8ff__class__ Tff7b72is Te6edf3MDBackdropBackLayerTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8ffback_layerTff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3widgetTb4b4b4)
Tff7b72elif Te6edf3widgetTff7b72.Td2a8ff__class__ Tff7b72is Te6edf3MDBackdropFrontLayerTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffidsTff7b72.Td2a8fffront_layerTff7b72.Td2a8ffadd_widgetTb4b4b4(Te6edf3widgetTb4b4b4)


Tff7b72class T56d364MDBackdropToolbarTb4b4b4(Te6edf3MDTopAppBarTb4b4b4)Tb4b4b4:
T8b949e"""Implements a toolbar for back content."""


Tff7b72class T56d364MDBackdropFrontLayerTb4b4b4(Te6edf3MDBoxLayoutTb4b4b4)Tb4b4b4:
T8b949e"""Container for front content."""


Tff7b72class T56d364MDBackdropBackLayerTb4b4b4(Te6edf3MDBoxLayoutTb4b4b4)Tb4b4b4:
T8b949e"""Container for back content."""


Tff7b72class T56d364_BackLayerTb4b4b4(Te6edf3BoxLayoutTb4b4b4)Tb4b4b4:
Tff7b72pass


Tff7b72class T56d364_FrontLayerTb4b4b4(Te6edf3MDCardTb4b4b4, Te6edf3FakeRectangularElevationBehaviorTb4b4b4)Tb4b4b4:
Tff7b72pass


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────